<!DOCTYPE doctype PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">

<HTML>
  <HEAD>
    <META name="generator" content=
    "HTML Tidy for Java (vers. 2009-12-01), see jtidy.sourceforge.net">

    <TITLE>Debugger: Memory Regions</TITLE>
    <META http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <LINK rel="stylesheet" type="text/css" href="help/shared/DefaultStyle.css">
  </HEAD>

  <BODY lang="EN-US">
    <H1><A name="plugin"></A>Debugger: Memory Regions</H1>

    <DIV class="image">
      <IMG alt="" src="images/DebuggerRegionsPlugin.png">
    </DIV>

    <P>Regions refer to ranges of allocated or reserved memory reported by the target, i.e., the
    target's memory map. The precise meaning of these regions may vary depending on the nature of
    the target. For user-mode applications, this is generally pages of memory allocated for image
    sections, the stack, the heap, etc. The regions manager allows the user to rename pages and
    modify the recorded permissions. Note that such modifications <EM>do not</EM> affect the
    target; but only the recorded trace.</P>

    <H2>Table Columns</H2>

    <P>The table has the following columns:</P>

    <UL>
      <LI>Name - the name given to the region by the target. This field is user modifiable.</LI>

      <LI>Start - the minimum address of the region. Double-clicking this field navigates to the
      address.</LI>

      <LI>End - the maximum address of the region. Double-clicking this field navigates to the
      address.</LI>

      <LI>Length - the length of the region in bytes.</LI>

      <LI>Read, Write, Execute - various flags of the region. These flags only affect Ghidra's
      analysis. Toggling these <EM>do not</EM> affect the target.</LI>

      <LI>Key, Path - descriptions the region object in the target's model. These are hidden by
      default. See the <A href="help/topics/DebuggerModelPlugin/DebuggerModelPlugin.html">Model</A>
      window.</LI>
    </UL>

    <H2>Actions</H2>

    <P>The Regions window provides the following actions:</P>

    <H3><A name="map_regions"></A>Map Regions</H3>

    <P>This action is analogous to the Map Modules and Map Sections actions from the <A href=
    "help/topics/DebuggerModulesPlugin/DebuggerModulesPlugin.html">Modules window</A>. It searches
    the tool's open programs for blocks matching the selected regions and proposes new mappings.
    Users who prefer this should also consider setting the <A href=
    "help/topics/DebuggerModulesPlugin/DebuggerModulesPlugin.html#auto_map">Auto-Map</A> action to
    use Regions. For the best result, the selection regions should comprise a complete module. In
    particular, it should include the region containing the module's image base, because the offset
    from this base is used in scoring the best-matched blocks. Additionally, the region names must
    include the module's file name, otherwise the matcher has no means to identify a corresponding
    program.</P>

    <DIV class="image">
      <IMG alt="" src="images/DebuggerRegionMapProposalDialog.png">
    </DIV>

    <H3><A name="map_regions_to"></A>Map Regions to Current Program</H3>

    <P>This action is available from the pop-up menu, when there is a selection of regions and
    there is an open program. It behaves like Map Regions, except that it will attempt to map the
    selected regions to blocks in the current program only. This is useful if the regions are not
    named according to the module filename. The selected regions should still comprise a complete
    module for best results.</P>

    <H3><A name="map_region_to"></A>Map Region to Current Block</H3>

    <P>This action is available from a single region's pop-up menu, when there is an open program.
    It behaves like Map Regions, except that it will propose the selected region be mapped to the
    block containing the cursor in the static listing.</P>

    <H3><A name="select_addresses"></A><IMG alt="" src="icon.debugger.select.addresses"> Select
    Addresses</H3>

    <P>This action is available when at least one region is selected. It selects all addresses in
    the dynamic listing contained by the selected regions.</P>

    <H3><A name="select_rows"></A><IMG alt="" src="icon.debugger.select.rows"> Select Rows</H3>

    <P>This action is available when the dynamic listing's cursor is at a valid location. It
    selects the region containing that cursor. If the dynamic listing has a selection, it selects
    all regions intersecting that selection.</P>

    <H3><A name="add_region"></A>Add Region</H3>

    <P>This action is available when a trace is active. It adds a new region to the memory map. It
    should only be used for emulation or to correct a recorded trace.</P>

    <H3><A name="delete_regions"></A>Delete Regions</H3>

    <P>This action is available when at least one region is selected. It deletes those regions. Use
    this with caution, since recovering those regions could be difficult. In general, this should
    only be used to remove regions that were manually added.</P>

    <H3><A name="force_full_view"></A>Force Full View</H3>

    <P>This action is available when a trace is active. It forces all physical address spaces into
    the view. By default, only those addresses in the memory map &mdash; as recorded in the trace
    at the current snapshot &mdash; are displayed in the listing and memory windows. When this
    toggle is on, regions are ignored. Instead, all physical addresses are displayed. ("Physical"
    includes all Sleigh memory spaces except <CODE>OTHER</CODE>.) This toggle applies only to the
    current trace.</P>
  </BODY>
</HTML>
